package com.auicyh.tylb.utils;

import android.util.Log;

/**
 * 作者：  Ocean 2018/8/22 10:39
 * 信息：  Oil com.auicyh.tylb.utils
 * 功能：  日志工具类
 * 邮箱：   1126067113@qq.com
 * 修改人：
 * 公司: 北京天元陆兵汽车科技有限公司
 * @author Ocean
 */
public class LogUtils {
    private final static String TAG = "tylb";

    /**
     * 生成标签
     * @return tag
     */
    public static String generateTag() {
        // 标准格式
        String tag = "%s:%s.%s.(L:%s)";
        // 获取栈信息它返回一个数组，读取第二个元素，里面有我们的要的数据
        StackTraceElement element = new Throwable().getStackTrace()[2];
        //  获取全类名
        String className = element.getClassName();
        // 截取类名
        className = className.substring(className.lastIndexOf(".") + 1);
        // 方法名
        String methodName = element.getMethodName();
        // 行数
        String line = String.valueOf(element.getLineNumber());
        // 自定义的前缀 SailPro:LoginActivity$1.onClick.(L:55):
        //                %s : %s.              %s.    (L:%s)
        // String mCustomTagPrefix = TAG;
        tag = String.format(tag, TAG, className, methodName, line);
        return tag;
    }


    /**
     * 打印一些烦碎的信息
     * @param info 信息
     */
    public static void v(boolean isShowLog, String info) {
        if (isShowLog) {
            if (StringUtils.isStrNull(info)) {
                info = "NULL";
            }
            Log.v(generateTag(), info);
        }
    }

    /**
     * 打印一些调试信息
     * @param info 信息
     */
    public static void d(boolean isShowLog, String info) {
        if (isShowLog) {
            if (StringUtils.isStrNull(info)) {
                info = "NULL";
            }
            Log.d(generateTag(), info);
        }
    }

    /**
     * 打印一些比较主要的数据
     * @param info 信息
     */
    public static void i(boolean isShowLog, String info) {
        if (isShowLog) {
            if (StringUtils.isStrNull(info)) {
                info = "NULL";
            }
            Log.i(generateTag(), info);
        }
    }

    /**
     * 打印一些警告信息
     * @param info 信息
     */
    public static void w(boolean isShowLog, String info) {
        if (isShowLog) {
            if (StringUtils.isStrNull(info)) {
                info = "NULL";
            }
            Log.w(generateTag(), info);
        }
    }

    /**
     * 打印错误信息
     * @param info 信息
     */
    public static void e(boolean isShowLog, String info) {
        if (isShowLog) {
            if (StringUtils.isStrNull(info)) {
                info = "NULL";
            }
            Log.e(generateTag(), info);
        }
    }
}
